package a.i.a;

import java.util.Comparator;

class l
  extends k
{
  public l(Comparator paramComparator)
  {
    super(paramComparator);
  }
  
  void i()
  {
    if ((d.e) || (!c()))
    {
      f(this.c);
      d(this.c);
    }
  }
  
  void c(b paramb)
  {
    if (paramb == null) {
      return;
    }
    if (!d.e)
    {
      if (!a(paramb.d)) {
        throw new RuntimeException("Internal error: containment trouble" + paramb.d);
      }
      c(paramb.b);
    }
    c(paramb.c);
  }
  
  void d(b paramb)
  {
    boolean bool = d.e;
    if (!bool) {
      if (paramb == null) {
        return;
      }
    }
    if ((bool) || ((paramb.b == null) || (a(paramb.b.d, paramb.d) < 0)))
    {
      if (paramb.c != null)
      {
        if (bool) {
          break label94;
        }
        if (a(paramb.c.d, paramb.d) > 0) {}
      }
    }
    else {
      throw new IllegalStateException("Internal error: compare values trouble");
    }
    d(paramb.b);
    label94:
    d(paramb.c);
  }
  
  void e(b paramb)
  {
    boolean bool = d.e;
    if (!bool) {
      if (paramb.a == null) {
        return;
      }
    }
    if (paramb.a.b == paramb)
    {
      System.out.println("left up " + paramb.a);
      if (bool) {
        return;
      }
      if (!d.d) {}
    }
    else
    {
      System.out.println("right up " + paramb.a);
    }
    e(paramb.a);
  }
  
  void a(b paramb, String paramString)
  {
    boolean bool = d.e;
    if ((bool) || (paramb != null))
    {
      if (paramb != this.c)
      {
        if (!bool) {}
        System.out.println(paramString + (paramb.a.b == paramb ? "[l] " : "[r] ") + paramb);
        if (bool) {
          break label130;
        }
        if (!d.d) {}
      }
      else
      {
        System.out.println(paramString + paramb);
      }
      a(paramb.b, paramString + " ");
      label130:
      a(paramb.c, paramString + " ");
    }
  }
  
  int f(b paramb)
  {
    boolean bool = d.e;
    int i = 0;
    int j = 0;
    if (!bool) {
      if (paramb.b == null)
      {
        if (bool) {
          break label61;
        }
        if (paramb.c == null)
        {
          if (!bool) {
            if (paramb.e != 0) {
              throw new RuntimeException("Internal error: balance trouble");
            }
          }
          return 1;
        }
      }
    }
    label61:
    if (!bool) {
      if (paramb.c == null)
      {
        i = f(paramb.b);
        if ((bool) || (i <= 1))
        {
          if (bool) {
            break label113;
          }
          if (paramb.e == -1) {}
        }
        else
        {
          throw new RuntimeException("Internal error: balance trouble");
        }
        label113:
        return i + 1;
      }
    }
    if (paramb.b == null)
    {
      j = f(paramb.c);
      if ((bool) || (j <= 1))
      {
        if (bool) {
          break label166;
        }
        if (paramb.e == 1) {}
      }
      else
      {
        throw new RuntimeException("Internal error: balance trouble");
      }
      label166:
      return j + 1;
    }
    i = f(paramb.b);
    j = f(paramb.c);
    if (!bool) {
      if (j - i != paramb.e) {
        throw new RuntimeException("Internal error: balance trouble " + i + " " + j);
      }
    }
    return Math.max(i, j) + 1;
  }
  
  public void d(Object paramObject)
  {
    boolean bool2 = d.e;
    boolean bool1 = d.d;
    Object localObject = null;
    b localb = this.c;
    if (!bool2)
    {
      if (localb == null) {
        this.c = new b(paramObject);
      }
    }
    else {
      break label234;
    }
    while (localb != null)
    {
      localObject = localb;
      if (bool1) {
        break label135;
      }
      if (a(paramObject, localb.d) < 0)
      {
        localb = localb.b;
        if ((!bool2) && (!bool1)) {
          break;
        }
      }
      else
      {
        if (!bool2)
        {
          if (a(paramObject, localb.d) > 0) {
            localb = localb.c;
          }
        }
        else {
          if (!bool1) {
            continue;
          }
        }
        localb.d = paramObject;
        if (bool2) {
          break label126;
        }
        return;
      }
    }
    localb = new b(paramObject);
    label126:
    if (a(paramObject, localObject.d) < 0)
    {
      localObject.a(localb);
      if (!bool2)
      {
        if (localObject.e == 1)
        {
          localObject.e = 0;
          if (bool2) {
            return;
          }
          if (!bool1) {}
        }
        else
        {
          localObject.e = -1;
          g(localObject);
          if (bool2) {
            return;
          }
        }
      }
      else if (!bool1) {}
    }
    else
    {
      localObject.c(localb);
      if (!bool2) {
        if (localObject.e == -1)
        {
          localObject.e = 0;
          if (bool2) {
            return;
          }
          if (!bool1) {
            break label234;
          }
        }
      }
      localObject.e = 1;
      g(localObject);
    }
    label135:
    label234:
    this.e += 1;
  }
  
  void g(b paramb)
  {
    boolean bool2 = d.e;
    boolean bool1 = d.d;
    if (!bool2) {
      if (paramb.a == null) {
        return;
      }
    }
    b localb = paramb.a;
    int i;
    if (!bool2) {
      if (localb.b == paramb) {
        if (!bool2) {
          switch (localb.e)
          {
          case 1: 
            localb.e = 0;
            if (!bool2) {
              if (!bool1) {
                break;
              }
            }
            break;
          case 0: 
            localb.e = -1;
            g(localb);
            if (!bool2) {
              if (!bool1) {
                break;
              }
            }
            break;
          case -1: 
            if (!bool2) {
              switch (paramb.e)
              {
              case -1: 
                l(localb);
                localb.e = 0;
                localb.c.e = 0;
                if (!bool2) {
                  if (!bool1) {
                    break;
                  }
                }
                break;
              case 1: 
                i = localb.b.c.e;
                n(localb);
                localb.e = 0;
                if (!bool2) {
                  switch (i)
                  {
                  case 0: 
                    localb.b.e = 0;
                    localb.c.e = 0;
                    if (!bool2) {
                      if (!bool1) {
                        break;
                      }
                    }
                    break;
                  case 1: 
                    localb.b.e = -1;
                    localb.c.e = 0;
                    if (!bool2) {
                      if (!bool1) {
                        break;
                      }
                    }
                    break;
                  case -1: 
                    localb.b.e = 0;
                    localb.c.e = 1;
                  }
                }
                break;
              }
            }
            break;
          }
        }
      }
    }
    if ((bool1) && ((bool2) || (localb.c == paramb)))
    {
      if (!bool2) {}
      switch (localb.e)
      {
      case -1: 
        localb.e = 0;
        if (!bool2) {
          if (!bool1) {
            return;
          }
        }
      case 0: 
        localb.e = 1;
        g(localb);
        if ((!bool2) && (!bool1)) {}
        break;
      case 1: 
        if (!bool2) {}
        switch (paramb.e)
        {
        case 1: 
          k(localb);
          localb.e = 0;
          localb.b.e = 0;
          if ((!bool2) && (!bool1)) {
            break;
          }
        case -1: 
          i = localb.c.b.e;
          m(localb);
          localb.e = 0;
          if (!bool2) {}
          switch (i)
          {
          case 0: 
            localb.c.e = 0;
            localb.b.e = 0;
            if (!bool2) {
              if (!bool1) {
                return;
              }
            }
          case -1: 
            localb.c.e = 1;
            localb.b.e = 0;
            if (!bool2) {
              if (!bool1) {
                return;
              }
            }
          case 1: 
            localb.c.e = 0;
            localb.b.e = -1;
          }
        }
        break;
      }
    }
  }
  
  public void b(Object paramObject)
  {
    b localb = e(paramObject);
    if (!d.e)
    {
      if (localb != null) {
        i(localb);
      }
      this.e -= 1;
    }
  }
  
  void i(b paramb)
  {
    boolean bool2 = d.e;
    boolean bool1 = d.d;
    b localb1 = paramb.a;
    if (!bool2) {
      if (paramb.b == null)
      {
        if (bool2) {
          break label124;
        }
        if (paramb.c == null)
        {
          if (!bool2) {
            if (localb1 == null)
            {
              this.c = null;
              if (!bool2) {
                if (!bool1) {
                  return;
                }
              }
            }
            else
            {
              j(paramb);
            }
          }
          if (!bool2) {
            if (paramb.a.b == paramb)
            {
              paramb.a.b = null;
              if (bool2) {
                break label117;
              }
              if (!bool1) {
                return;
              }
            }
          }
          if (bool2) {
            break label124;
          }
          paramb.a.c = null;
          if (!bool1) {
            label117:
            return;
          }
        }
      }
    }
    label124:
    if (!bool2) {
      if (paramb.b != null)
      {
        if (bool2) {
          break label226;
        }
        if (paramb.c != null) {
          break label218;
        }
      }
    }
    if (!bool2) {
      if (paramb.b != null)
      {
        paramb.d = paramb.b.d;
        if (bool2) {
          break label215;
        }
        if (!bool1) {
          break label188;
        }
      }
    }
    paramb.d = paramb.c.d;
    label188:
    paramb.b = (paramb.c = null);
    paramb.e = 0;
    if (!bool2)
    {
      j(paramb);
      label215:
      if (!bool1) {}
    }
    else
    {
      label218:
      label226:
      b localb2 = a(paramb.c);
      a(paramb, localb2);
      i(localb2);
    }
  }
  
  void j(b paramb)
  {
    boolean bool2 = d.e;
    boolean bool1 = d.d;
    if (!bool2) {
      if (paramb.a == null) {
        return;
      }
    }
    b localb = paramb.a;
    int i;
    if (!bool2) {
      if (localb.b == paramb) {
        if (!bool2) {
          switch (localb.e)
          {
          case -1: 
            localb.e = 0;
            j(localb);
            if (!bool2) {
              if (!bool1) {
                break;
              }
            }
            break;
          case 0: 
            localb.e = 1;
            if (!bool2) {
              if (!bool1) {
                break;
              }
            }
            break;
          case 1: 
            if (!bool2) {
              switch (localb.c.e)
              {
              case 0: 
                k(localb);
                localb.e = -1;
                localb.b.e = 1;
                if (!bool2) {
                  if (!bool1) {
                    break;
                  }
                }
                break;
              case -1: 
                i = localb.c.b.e;
                m(localb);
                localb.e = 0;
                if (!bool2)
                {
                  switch (i)
                  {
                  case -1: 
                    localb.b.e = 0;
                    localb.c.e = 1;
                    if (bool2) {
                      break label295;
                    }
                    if (!bool1) {
                      break;
                    }
                  case 0: 
                    localb.c.e = 0;
                    if (bool2) {
                      break label295;
                    }
                    if (!bool1) {
                      break;
                    }
                  case 1: 
                    localb.b.e = -1;
                    localb.c.e = 0;
                  }
                  j(localb);
                }
                if (!bool2) {
                  if (!bool1) {
                    break;
                  }
                }
                break;
              case 1: 
                label295:
                k(localb);
                localb.e = 0;
                localb.b.e = 0;
                j(localb);
              }
            }
            break;
          }
        }
      }
    }
    if ((bool1) && ((bool2) || (localb.c == paramb)))
    {
      if (!bool2) {}
      switch (localb.e)
      {
      case 1: 
        localb.e = 0;
        j(localb);
        if (!bool2) {
          if (!bool1) {
            return;
          }
        }
      case 0: 
        localb.e = -1;
        if ((!bool2) && (!bool1)) {}
        break;
      case -1: 
        if (!bool2) {}
        switch (localb.b.e)
        {
        case 0: 
          l(localb);
          localb.e = 1;
          localb.c.e = -1;
          if ((!bool2) && (!bool1)) {}
          break;
        case 1: 
          i = localb.b.c.e;
          n(localb);
          localb.e = 0;
          if (!bool2)
          {
            switch (i)
            {
            case 1: 
              localb.c.e = 0;
              localb.b.e = -1;
              if (bool2) {
                break label604;
              }
              if (!bool1) {
                break;
              }
            case 0: 
              localb.b.e = 0;
              if (bool2) {
                break label604;
              }
              if (!bool1) {
                break;
              }
            case -1: 
              localb.c.e = 1;
              localb.b.e = 0;
            }
            j(localb);
            if (bool2) {
              break;
            }
          }
          else if (!bool1)
          {
            return;
          }
        case -1: 
          label604:
          l(localb);
          localb.e = 0;
          localb.c.e = 0;
          j(localb);
        }
      }
    }
  }
  
  void k(b paramb)
  {
    b localb = paramb.c;
    paramb.c(localb.c);
    localb.c(localb.b);
    localb.a(paramb.b);
    paramb.a(localb);
    a(paramb, localb);
  }
  
  void l(b paramb)
  {
    b localb = paramb.b;
    paramb.a(localb.b);
    localb.a(localb.c);
    localb.c(paramb.c);
    paramb.c(localb);
    a(paramb, localb);
  }
  
  void m(b paramb)
  {
    b localb1 = paramb.c;
    b localb2 = localb1.b;
    localb1.a(localb2.c);
    localb2.c(localb2.b);
    localb2.a(paramb.b);
    paramb.a(localb2);
    a(paramb, localb2);
  }
  
  void n(b paramb)
  {
    b localb1 = paramb.b;
    b localb2 = localb1.c;
    localb1.c(localb2.b);
    localb2.a(localb2.c);
    localb2.c(paramb.c);
    paramb.c(localb2);
    a(paramb, localb2);
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.i.a.l

 * JD-Core Version:    0.7.0.1

 */